<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 全局是父作用域
    // 函数内是子作用域
    
    var a = 1;
    function f1(){
        console.log(a)
    }
    f1();

    function f2(){
        var b = 2;
    }
    f2();
    // console.log(b);

    // ======

    // f3和f4是兄弟作用域

    function f3(){
        var c = 3;
        console.log(d)
    }
    function f4(){
        var d = 4;
        console.log(c);
    }
    // f3();
    // f4();

    // ========

    // 多层嵌套

    

    // var e = 5;
    // function f5(){
    //     // var e = 6;
    //     function f6(){
    //         // var e = 7;
    //         function f7(){
    //             // var e = 8;
    //             function f8(){
    //                 // var e = 9;
    //                 e = "hello";
    //                 console.log(e);
    //             }
    //             f8();
    //             console.log(e);
    //         }
    //         f7();
    //         console.log(e);
    //     }
    //     f6();
    //     console.log(e);
    // }
    // f5();
    // console.log(e);

    // =========
    // 匿名函数的最大作用：生成新的作用域
    // 立即执行
    ;var res = (function(msg){

        console.log(msg);

        var a = 10;
        function box1(){
            console.log(a)
        }
        function box2(){
            console.log(a)
        }
        function box3(){
            console.log(a)
        }
        box1();
        box2();
        box3();

        return "hahhaha";
    })("这是实参");
    

</script>
</html>